也默默的快完賽了,如同前幾天有稍微提到的,對工程師來說,Rive 不是一個太難的東西,更多時候他比較吃觀念與溝通的能力。觀念的部分我們前幾天都介紹的很全面了,但是關於溝通的部份我們沒有著墨太多,畢竟這系列還是以軟體開發為主。
我本來是這樣想的,直到我寫到第 29 天,看了非常多極度糟糕的文章與文件,好吧有些可能是我自己貢獻的。平常工作的時候,也常常遇到某些特定的同事可能……不是那麼善於言詞🥹🥹🥹,後來想想,的確無論是寫文章或是口語溝通,都是一個獨立於專業技術之外,但又非常影響工作表現的能力。我覺得反正鐵人賽也給我們這個機會,我以前也是法律系的,可能稍微比較會寫文章一點(雖然也差一分沒考上律師啦😭😭😭😭😭😭),所以就稍微講一下我的看法。
溝通的技巧或套路,應該很多影片或文章都有提到,所以一些基本的概念我就簡單列出來就好,不再一步一步解釋為什麼這些概念很重要了,有興趣的話可以再問我。
但這些基本概念不是憑空生出來的,而是從某個上位關鍵概念推出來的,這個關鍵概念就是最小化溝通成本。也就是說,假設我們覺得要最小化溝通成本,那麼自然應該「使用精確的文字」、「論述的內容要有層次」、「盡量按照因果關係的順序講」等等。
至於為什麼要最小化溝通成本,就是接下來我要講的。
這句話我應該在這 29 天內講了 500 遍以上,但我還是想再強調一次。再講深入一點,你的歲月靜好,是因為有人幫你負重前行,溝通成本就在那邊,不是你付就是對方付。所以很多時候就算不按照這些基本概念,你還是能輕鬆的跟別人溝通,但那是因為這些溝通成本被對方付掉了,不代表它不存在。再講更難聽一點,這是一種成本外部化,這叫以鄰為壑。
程式碼要求可讀性,提升可讀性省下的閱讀、理解、溝通成本,遠大於他的寫作成本,畢竟程式只有一個人在寫,但有很多人在看。工程師的其他輸出也是這樣,例如寫文章或是口語溝通,都是一個人輸出,很多人輸入的東西,因此要求輸出端處理成本,比請輸入端處理更划算。
人家常常說工程師做越久,寫程式的時間越少,溝通協調的時間越多。所以假設一個資深工程師有 30% 的工作時間在寫程式,60 - 70% 的工作時間跟溝通有關,那既然身為資深工程師,都願意花心力在 clean code 上面提升可讀性了(至少敝公司的工程師大大們是這樣🥹🥹🥹),那麼針對時間分配更多的溝通協調的工作,花一點心力在降低溝通成本上面,應該更能提高產值,因此對個人與團隊,應該都是更划算的選擇。
再講得更極端一點,我們 web 仔做的東西不是說沒有技術含量,但通常也沒有非常高啦(好啦我不知道你是不是 web 仔但我知道我是🙈🙈🙈🙈🙈🙈 ),所以對這種成熟製程的產品來說,成本控管是非常重要的一環。成本有很多種,其中溝通與時間成本佔非常多,這就是為什麼會有 Rive。
Rive 是從工作流程的層面下手,減少溝通與時間成本,這也是我喜歡 Rive 的地方,他有意識到成本的重要性。如果我們能從其他層面下手,再降低一點各種成本,至少就我個人的經驗來說,省下來的部分不敢說全部,但多少有一些會流到自己身上,無論是時間、心力、或是金錢等等。